#pragma once

#include "AERenderingEngine.hpp"
#include "AEEventListener.hpp"
#include "AEStateListener.hpp"

BEGIN_ARETE_NAMESPACE(components)

class AEState
{
public:
	virtual ~AEState(void) {}

	virtual void initialize(rendering::AERenderingEngine*,AEStateListener*) = 0;
	virtual void setActive(void) = 0;
	virtual void setDeactive(void) = 0;

	virtual void update(float) = 0;
};

END_ARETE_NAMESPACE